//  [10/11/2013 OMEGA] created

#ifndef _DUELGUIEEDITPANELCONTAINER_H_
#define _DUELGUIEEDITPANELCONTAINER_H_

#include <QtWidgets/QtWidgets>
#include "Duel.h"
#include "DuelGUIECommon.h"
#include "DuelGUIEEditView.h"
#include "DuelGUIEEditPanel.h"

class DGUIEEditPanelContainer : public QWidget
{
	Q_OBJECT
public:
	DGUIEEditPanelContainer(DGUIEEditView* parent);
	virtual ~DGUIEEditPanelContainer() {}

	typedef	std::list<DGUIEEditPanel*>	StdEditPanelList;
	typedef	Duel::ListIterator<StdEditPanelList>	EditPanelIterator;

	EditPanelIterator	getEditViewIterator() { return EditPanelIterator(mViewList.begin(), mViewList.end()); }

protected:
	DGUIEEditView*	mParent;
	StdEditPanelList	mViewList;

};

class DGUIEEditPanelSingleContainer : public DGUIEEditPanelContainer
{
public:
	DGUIEEditPanelSingleContainer(DGUIEEditView* parent);
	~DGUIEEditPanelSingleContainer();

protected:
	DGUIEEditPanel*		mPanel;
};

class DGUIEEditPanelDualContainer : public DGUIEEditPanelContainer
{
public:
	DGUIEEditPanelDualContainer(DGUIEEditView* parent);
	~DGUIEEditPanelDualContainer();

protected:
	DGUIEEditPanel*		mLeftPanel;
	DGUIEEditPanel*		mRightPanel;
};


class DGUIEEditPanelQuadContainer : public DGUIEEditPanelContainer
{
public:
	DGUIEEditPanelQuadContainer(DGUIEEditView* parent);
	~DGUIEEditPanelQuadContainer();

protected:
	DGUIEEditPanel*		mTLPanel;
	DGUIEEditPanel*		mTRPanel;
	DGUIEEditPanel*		mBLPanel;
	DGUIEEditPanel*		mBRPanel;
};


#endif